1. Field of the Invention
This invention relates in general to data storage and processing, and more particularly reclamation of data storage space.
2. Description of Related Art
In hierarchical computer storage systems, intensively used and fast memories are paired with arrays of slower and less frequently accessed data devices. One example of high-speed, expensive memory is a direct access storage device file buffer (DASD). Slower memory devices include tape drives and disk drive arrays, which are less expensive than a DASD.
One such hierarchical storage system is a virtual tape storage system (VTS). A VTS includes an array of tape devices, for example, an IBM.RTM. 3590 tape cartridge. During operation, the VTS is writing data from a host to the numerous tape devices on the system. Eventually, many of the volumes of data expire, and will not be accessed in the future. A volume may expire because an expiration time or date was assigned to the volume at creation, or a volume may expire because the volume is replaced by a more recent version stored on the system. As volumes expire, some tapes are left containing only a small fraction of data that is still current. Therefore, many computer storage systems perform a periodic reclamation process. A reclamation process is used to clear out storage space that contains only a few current files, consolidating those files in another location, leaving the tapes to be assigned as a scratch tape to receive new data. After current files are copied to a new location, a storage manager is updated as to the new locations of the volumes. Now, the tapes can be written over with entirely new data.
Reclamation processes and systems are also called garbage collectors, especially when referring to systems that consolidate storage space in object-oriented program-controlled systems.
A common garbage collector uses a mark phase to mark all objects that should be saved from the storage space. Then, all objects are sequentially examined in a sweep phase. Objects that are not marked are deleted and objects that are marked are unmarked and saved. This marked/sweep garbage collector stops all other activity while it is running. The time required for the mark/sweep garbage collector to complete its tasks is significant and unpredictable. Therefore, this type of mark/sweep garbage collector is difficult to use with systems that have real-time constraints. The uncontrolled time delay while the garbage collector runs is unacceptable.
One way to address the problem of conflicts with customer use of data and reclamation processing is to increase the speed of the reclamation process. However, conflicts still arise between the operation demands and the reclamation demands even when the time of reclamation processing is shortened.
One method for automatic memory reclamation within an object-oriented system reduces the number of conflicts by making reclamation processing time more predictable. Within this system, reclamation tasks are broken up into cycles that are equal to a predetermined amount of time. Each task comprises a non-decomposable task that can be performed within the predetermined amount of time. Thus, the scheduling of the task segments is controlled, so that garbage collection is less obtrusive to the system.
One problem with this system is that it does not take into account the amount of remaining storage space. If available storage space is exhausted while a customer program is running, the program will fail. It is important that reclamation processing keeps up with the demand for new storage space, in order to prevent the failure of programs. It is more preferable that the program operation is delayed by reclamation processing than that the program crashes due to lack of storage space.
The virtual tape system includes a library manager that allows the customer to set times during which reclamation does not occur. This allows the customer to prioritize certain activities that they do not wish to be delayed by reclamation activities. However, excessive interference between the reclamation processing and customer VTS usage can occur.
It can be seen that there is a need for automated reclamation scheduling that takes into account the amount of remaining available storage space in a virtual tape server. It can also be seen that there is a need for a system that is capable of overriding customer reclamation time preferences, in order to ensure that operation will continue smoothly.